The present invention is directed to graphical user interfaces that are employed in computer systems, such as personal computers, and more particularly to a graphical user interface that provides consistency of operation for the dragging and dropping of all types of objects.
The evolution of the computer industry is unparalleled in its rate of growth and complexity. Personal computers, for example, which began as little more than calculators having limited memory, tape-driven input capabilities and monochrome displays are now able to handle almost any data processing task with relative ease. While the ever-growing increase in computing power provided greater capabilities for application programmers and end users alike, the corresponding increase in complexity created an ease of use problem. Consequently, computer system designers were faced with a new challenge, namely to harness the available computing power in a form that was usable even by those with relatively little computer training, to ease the transition of users into a computer-based information paradigm.
In pursuit of this objective, various input/output philosophies, such as xe2x80x9cuser friendly,xe2x80x9d xe2x80x9cwysiwigxe2x80x9d and xe2x80x9cmenu drivenxe2x80x9d became popular. These approaches to the input/output function are particularly applicable to microcomputers, also known as personal computers, which are intended to appeal to a broad audience of computer users, including those who had no previous computer experience. An important aspect of computers which employ those input/output concepts was, and continues to be, the interface which allows the user to input commands and data and receive results. One particularly prevalent form of interface is known as the graphical user interface (GUI).
One popular type of GUI display is based on a visual metaphor which defines a monitor screen as a work space known as a xe2x80x9cdesktop,xe2x80x9d in which the contents of documents are presented in relocatable regions known as xe2x80x9cwindows.xe2x80x9d In addition to windows, the graphical user interface typically includes icons that represent various objects in the computer system. In this context, the term xe2x80x9cobjectxe2x80x9d refers to any software entity that exists in the memory of the computer and constitutes a specimen of a particular class. For example, an object can be a data file which contains the contents of a document. It can also be an application program or other type of service provider, such as a hardware driver. An object can also be a container for other objects, such as a folder or a window.
One of the primary advantages offered by the graphical user interface, in terms of making the computer easier to use, is the ability for the user to effortlessly manipulate objects by moving, or otherwise acting upon, their icon representations. For example, a graphical user interface typically includes a cursor, or similar type of pointing device, that is controlled by the user to select objects. By actuating a button or key while the cursor is positioned over an icon, for example double-clicking a mouse button, the user can cause the object represented by the icon to open. If the icon represents an application program, the program can be launched. If the icon represents a data file, the application program which created that data file can be automatically launched, and the file opened within the program.
Another ease-of-use capability provided by the graphical user interface is known as xe2x80x9cdrag-and-drop.xe2x80x9d This term refers to the functionality which permits a user to select an icon, or other representation of an object, and xe2x80x9cdragxe2x80x9d the icon from one location to another on the display. For example, an icon for a data file can be dragged from the desktop to a folder, to cause the data file to be stored within the folder. In another type of drag-and-drop operation, an icon for a graphic document can be dragged into a window, to cause the document to be displayed within the window. As another example, an icon for a text document can be dragged onto an icon for a printer, to cause the document to be printed.
In the past, the result of a drag-and-drop operation was dependent upon a number of factors, such as the type of object being dragged, the type of source from which the object was being dragged, and the type of destination. In some instances, the location of the source and the location of the destination were also factors that influenced the resulting action. In this context, the term xe2x80x9ctypexe2x80x9d refers to an inherent characteristic or property of each object. For example, an object can be a text type of object, i.e. a data file containing textual data, a graphic type of object, which is another form of data file containing graphical information, or an application type, namely an executable program. If an action that results from any given drag-and-drop operation is dependent upon the first three independent factors noted previously, all of the possible forms of action can be represented in a three-dimensional matrix of dimensions nxc3x97mxc3x97m, where n is the number of types of objects in a system (typically on the order of 100 or more) and m is the number of types of receiving, or container, objects onto which any given object can be dropped (which may be on the order of 10 or more). If additional factors are involved, the number of possible results increases exponentially.
A typical computer user cannot reasonably be expected to remember all of these possibilities. As such, the model for drag-and-drop operations is not intuitive. Consequently, when a user performs a particular drag-and-drop operation, the resulting action may not be what was expected, or desired. For example, a user may know that the dragging of an icon from a desktop to a folder on the desktop results in the file represented by the icon being moved into that folder. However, if an icon is dragged from a window representing a removable disk to the desktop folder, the resulting action may be to make a copy of the file represented by the icon, while retaining the original version on the removable disk. The user may have intended merely to move the file from the removable disk to the desktop folder, similar to moving the icon from the desktop to the folder. Because there are two copies of the file, the user is required to go back to the removable disk and delete the original copy of the file therefrom. The need for the user to perform these extra actions, because the result of the drag-and-drop operation was not as intended, is counterproductive to the basic premise which underlies the graphical user interface, namely ease of use.
Accordingly, it is an objective of the present invention to provide a graphical user interface which ensures consistency of operation when objects are dragged to various destinations in windows and workspaces.
In accordance with the present invention, this objective is achieved by controlling the action of a drag-and-drop operation in dependence upon a single factor, namely whether the destination for the operation is a content object or a service object. Generally speaking, a content object is any type of object that has the capability to contain another object without manipulating its data. In contrast, a service object is one which provides a computational result on data when another object is dropped on it. If the destination of a drag-and-drop operation is a content object, the resulting action is to move the dragged object from its original location to the destination. If the destination is a service object, the resulting action is to perform the associated service on the dragged object without affecting the perceived location of the data contained in the dragged object.
If the user desires that a copy of an object be made when dragging it to a content object, rather than moving the object, such intention can be indicated through an appropriate action during the drag-and-drop operation. For example, the user may press a specified key on a keyboard, to indicate that the drag-and-drop operation should make a copy, rather than merely move the object. If the source of the dragged object does not permit the user to move the object, for example it is a locked disk, the user can be presented with an option to copy the object when the drag-and-drop operation is carried out. Alternatively, rather than requesting the user to indicate a choice each time such a situation occurs, the computer system can be set up to automatically make a copy if the source does not permit the object to be moved therefrom.
Further features of the invention, and the advantages offered thereby, are explained in detail hereinafter with reference to preferred embodiments illustrated in the accompanying drawings.